<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>InitPHP框架 - A PHP Framework - 框架类加载方式</title>
<link href="static/common.css" type="text/css" rel="stylesheet" />
<meta name="keywords" content="php框架，国产php框架, initphp框架，MVC，分层体系" />
<meta name="description" content="initphp框架是一款国产php框架。initphp框架主要基于MVC模式，具备代码清晰，操作简单，功能齐全，开发快速，高效安全等特点，是您选择php框架的首选。" />
</head>
<body>
<div class="header">
  <div class="header_nav">InitPHP (A PHP Framework) 用户手册</div>
  <div class="header_div">
    <div class="header_title">第4章 4.1 框架类加载方式</div>
    <div class="header_right"><a href="3_4.htm">上一页</a> <a href="4_2.htm">下一页</a> </div>
  </div>
</div>

<div class="title">
  <h3>类库加载方式汇总：</h3>
</div>
<ul>
  <li>InitPHP提供两大类类文件加载方式：框架内部API加载方式和具体应用中的类加载</li>
  <li>框架内部API加载方式：主要用来加载框架内部的API</li>
  <li>具体应用中的类加载：主要用来加载应用中的类，Service和Dao类，还有就是InitPHP::load和InitPHP::import</li>
</ul>
<div class="title">
  <h3>框架内部API加载方式：</h3>
</div>
<ul>
  <li><span style="color:#FF0000">框架所有的类文件加载都是通过$this->load('类名称', 'type')接口实现。（type：u-工具类，l-扩展类，c-控制器类，v-视图层类，s-服务层类，d-数据层类）【以下接口的实现都是通过load接口，只是封装了一层】</span></li>
  <li>工具库：提供$this->getUtil()方法</li>
  <li>扩展库：提供$this->getLibrary()方法</li>
  <li>控制器：$this->controller-> 只能在Controller类中使用</li>
  <li>视图层：$this->view-> 只能在Controller类中使用</li>
  <li>服务层：$this->service-> 只能在Serice类中使用</li>
  <li>数据层：$this->dao-> 只能在Dao类中使用</li>
</ul>
<div class="title">
  <h3>具体应用中的类加载：</h3>
</div>
<ul>
  <li>获取Service函数API：InitPHP::getService()【全局都可以用】</li>
  <li>获取Dao函数API：InitPHP::getDao()【全局都可以用】</li>
  <li>通用导入PHP文件函数API：InitPHP::import() 【全局都可以用】</li>
  <li>通用实例化PHP类函数API：InitPHP::loadclass() 【全局都可以用】</li>
</ul>

<div class="title">
  <h3>对象注册：</h3>
</div>
<ul>
  <li>InitPHP提供了一个$this->register_global对象注册的方法，这个方法可以将Controller，Service，Dao中不同的对象进行共享</li>
  <li>也就是说，在Service中我们可以使用Controller注册的对象。</li>
</ul>
<pre id="PHP" class="prettyprint">
/**
 * 初始化 
 */
public function __construct() {
	parent::__construct();
	$InitPHP_conf = InitPHP::getConfig();
	$this->controller = $this->load('controller', 'c'); //导入Controller
	$this->view       = $this->load('view', 'v'); //导入View
	$this->view->set_template_config($InitPHP_conf['template']); //设置模板
	$this->view->assign('init_token', $this->controller->get_token()); //全局输出init_token标记
	//注册全局变量，这样在Service和Dao中通过$this->common也能调用Controller中的类
	$this->register_global('common', $this->controller); 
}
</pre>

<div class="footer">版权所有：<a href="">http://initphp.com</a> InitPHP (A PHP Framework) By @Aliyun_zhuli</div>
<script src="static/jquery.js" type="text/javascript"></script>
<link href="static/prettify/prettify.css" rel="stylesheet" type="text/css">
<script src="static/prettify/prettify.js" type="text/javascript"></script>
<script type="text/javascript" src="static/comm.js"></script>
</body>
</html>
